
#include <cassert>
#include <iostream>

using namespace std;

struct A {

  int data{1};
  constexpr static int size() { return 2; }

  void member() {
    // static bool first_call{true};//当定义多个对象时,只有第一个会生效
    bool first_call{true};
    if (first_call) {
      std::cout << "first call" << std::endl;
      first_call = false;
    }
  }
};

void pnt(const A &a) { cout << a.size() << endl; }

int main() {
  constexpr int sz = A::size();
  A a;
  cout << sz << "  " << a.size() << endl;
  pnt(a);

  A a1, a2;
  a1.member();
  a2.member();
  return 0;
}
// (1024*5.7236988709502565e-03-1386*7.0534978101484298e-03+1155*5.9835859383672672e-03-924*6.0872528866527126e-03+495*6.8277485779398911e-03-154*6.5917231314370339e-03+21*6.0442942780003645e-03)/231